package lockstrategy;

import java.util.concurrent.locks.ReentrantLock;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 74646
 * Date: 2022-05-28
 * Time: 22:43
 */
public class Demo3 {
    public static void main(String[] args) {
        //构造方法默认是非公平锁(没有任何参数)，如果给一个参数true，那么就是公平锁
        ReentrantLock locker = new ReentrantLock(true);
        //加锁
        locker.lock();
        /**如果在这之间抛出异常了，就很容易导致 unlock 执行不到
        * 因此一般使用 try{}finally{},将unlock 写在 finally语句块中，因此就可以保证无论是否出现异常，unlock 都可以执行到
         *  locker.lock();
         *  try{
         *     // working
         *   }finally {
         *     locker.unlock();
         *  }
        * */

        //解锁
        locker.unlock();
    }
}
